<?php

namespace utils;

class Sesiones{

	static function crearFicheroSesion(){
		
		$fp = fopen(RUTA_SESIONES."sess_".session_id(),"w");
		fwrite($fp,json_encode($_SESSION[SESSION_USUARIO]));
		fclose($fp);
	}
	
	function listarSesiones(){
		//escanea directorio donde se guardan las sesiones y se guarda una lista en la variable ficheros
		//$ficheros= scandir(session_save_path());
		$ficheros = scandir(APP_FOLDER.'tmp/sesiones/');
		
		$sesiones = array();
		
		//por cada fichero ,comprobamos si contiene el string sess que define si es un fichero donde guarda una sesion
		foreach($ficheros as $file){
	
			//$pos = strpos($file,'sess_');
			
			if (strpos($file,'sess_') !== false) {

				$returnValue = $this->read($file);
	
				if(!isset($returnValue['estado'])){
					$sesiones['activas'][] = $returnValue;
				}
				if(isset($returnValue['estado'])){
					$sesiones['caducadas'][] = $returnValue;
				}
			}
		}
	
		return $sesiones;
	
	}
	
	
	
	private function read($filename){
	
		$info = array();
		$caducadas = array();
	
	
		$sCurrentFile = RUTA_SESIONES.$filename;
	
		//si existe fichero
		if( file_exists($sCurrentFile)){
	
			$data = file_get_contents($sCurrentFile, "r");
			$data = json_decode($data);

			$id_user = $data->id;		
			$usuario = $data->usr;
			$tiempo_expiracion = $data->tiempo_expiracion;
			$inicio = $data->inicio_sesion;
			$navegador = $data->navegador;
			$ultima_conexion = $data->ultima_conexion;
				
			$caduca = date('H:i:s d-m-Y',(int)$tiempo_expiracion);
			$fecha_actual = date('H:i:s d-m-Y',time());
			$inicio_sesion = date('H:i:s d-m-Y',(int)$inicio);
			$ultima_conexion = date('H:i:s d-m-Y',(int)$ultima_conexion);

			//si la sesion esta activa actualmente
			
			if(strtotime($fecha_actual) < strtotime($caduca)){
				$info['id_usuario'] = $id_user;
				$info['usuario'] = $usuario;
				$info['fecha_actual'] = $fecha_actual;
				$info['inicio_sesion'] = $inicio_sesion;
				$info['ultima_conexion'] = $ultima_conexion;
				$info['fecha_caducidad'] = $caduca;
				$info['navegador'] = $navegador;
				$info['nombre_sesion'] = $filename;
				$sesiones = $info;
			}
			//si esta caducada la sesion

			if($filename !== 'sess_'.$_COOKIE[session_name()] and strtotime($caduca) < strtotime($fecha_actual) ){
				$caducadas['id_usuario'] = $id_user;
				$caducadas['usuario'] = $usuario;
				$caducadas['estado'] = "false";
				$caducadas['nombre_sesion'] = $filename;
				$caducadas['navegador'] = $navegador;
				$caducadas['inicio_sesion'] = $inicio_sesion;
				$caducadas['ultima_conexion'] = $ultima_conexion;
				$caducadas['fecha_caducidad'] = $caduca;
				$sesiones = $caducadas;
			}
				
			return $sesiones;
	
		}
	}
	
	
	
	
	

}

?>